package basics;

import com.sun.scenario.effect.impl.sw.sse.SSEBlend_SRC_OUTPeer;

/**
 * 基本数据类型
 */
public class basicsDataType {

    /**
     * Java有八种基本类型。6个数字类型（4个整数，2个浮点），1个字符类型，1个布尔型
     */

    /**
     * byte:
     * byte数据类型是8位、有符号的，以二进制补码表示的整数；
     * 最小值是：-128
     * 最大值是： 127
     * 默认值是： 0
     * byte 类型用在大型数组中节约空间，主要代替整数，因为 byte 变量占用的空间只有 int 类型的四分之一；
     */
    byte a = 100, b = -50;

    /**
     * short:
     * short 数据类型是 16 位、有符号的以二进制补码表示的整数
     * 最小值是：-32768
     * 最大值是： 32767
     * 默认值是： 0
     * Short 数据类型也可以像 byte 那样节省空间。一个short变量是int型变量所占空间的二分之一；
     */
    short c = 1000,  d = -1000;

    /**
     * int:
     * int 数据类型是32位、有符号的以二进制补码表示的整数；
     * 最小值是：-2147483648
     * 最大值是： 2147483647
     * 默认值是： 0
     * int 一般地整型变量默认为 int 类型；
     */
    int e = 1000, f = -1999;

    /**
     * long:
     * long 数据类型是 64 位、有符号的以二进制补码表示的整数；
     * 最小值是：-9223372036854775808
     * 最大值是： 9223372036854775807
     * 默认值是： 0
     * long 这种类型主要使用在需要比较大整数的系统上；
     */
    long g = 1000L , h = -2000L;
    // "L"理论上不分大小写，但是若写成"l"容易与数字"1"混淆，不容易分辩。所以最好大写。

    /**
     * float:
     * float 数据类型是单精度、32位、符合IEEE 754标准的浮点数；
     * 默认值是： 0.0f
     * float 在储存大型浮点数组的时候可节省内存空间；浮点数不能用来表示精确的值，如货币；
     */
    float i = 234.1f;

    /**
     * double:
     * double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数；
     * 默认值是： 0.0d
     * double类型同样不能表示精确的值，如货币；
     */
    double j = 7D, k = 2.22, l = 12.12321;

    /**
     * boolean:
     * boolean 表示一位的信息,这种类型只作为一种标志来记录 true/false 情况；
     * 默认值是： false
     * double 只有两个值： true和false
     */
    boolean m = true, n = false;

    /**
     * char:
     * char 是一个单一的 16 位 Unicode 字符；
     * 最小值是： \u0000（十进制等效值为 0）；
     * 最大值是： \uffff（即为 65535）；
     * char 数据类型可以储存任何字符；
     */
    char o = 'A';

    public static void main(String[] args) {

        // byte
        System.out.println("基本类型：byte 二进制位数："+Byte.SIZE);
        System.out.println("包装类： java.lang.Byte");
        System.out.println("最小值： Byte.MIN_VALUE="+Byte.MIN_VALUE);
        System.out.println("最大值： Byte.MAX_VALUE="+Byte.MAX_VALUE);
        System.out.println();

        // short
        System.out.println("基本类型：short 二进制位数："+Short.SIZE);
        System.out.println("包装类： java.lang.Short");
        System.out.println("最小值： Short.MIN_VALUE="+Short.MIN_VALUE);
        System.out.println("最大值： Short.MAX_VALUE="+Short.MAX_VALUE);
        System.out.println();

        // int
        System.out.println("基本类型：int 二进制位数：" + Integer.SIZE);
        System.out.println("包装类：java.lang.Integer");
        System.out.println("最小值：Integer.MIN_VALUE=" + Integer.MIN_VALUE);
        System.out.println("最大值：Integer.MAX_VALUE=" + Integer.MAX_VALUE);
        System.out.println();

        // long
        System.out.println("基本类型：long 二进制位数：" + Long.SIZE);
        System.out.println("包装类：java.lang.Long");
        System.out.println("最小值：Long.MIN_VALUE=" + Long.MIN_VALUE);
        System.out.println("最大值：Long.MAX_VALUE=" + Long.MAX_VALUE);
        System.out.println();

        // float
        System.out.println("基本类型：float 二进制位数：" + Float.SIZE);
        System.out.println("包装类：java.lang.Float");
        System.out.println("最小值：Float.MIN_VALUE=" + Float.MIN_VALUE);
        System.out.println("最大值：Float.MAX_VALUE=" + Float.MAX_VALUE);
        System.out.println();

        // double
        System.out.println("基本类型：double 二进制位数：" + Double.SIZE);
        System.out.println("包装类：java.lang.Double");
        System.out.println("最小值：Double.MIN_VALUE=" + Double.MIN_VALUE);
        System.out.println("最大值：Double.MAX_VALUE=" + Double.MAX_VALUE);
        System.out.println();

        // char
        System.out.println("基本类型：char 二进制位数：" + Character.SIZE);
        System.out.println("包装类：java.lang.Character");
        // 以数值形式而不是字符形式将Character.MIN_VALUE输出到控制台
        System.out.println("最小值：Character.MIN_VALUE="
                + (int) Character.MIN_VALUE);
        // 以数值形式而不是字符形式将Character.MAX_VALUE输出到控制台
        System.out.println("最大值：Character.MAX_VALUE="
                + (int) Character.MAX_VALUE);

    }

}
